ROUND block

Short summary

Name

ROUND

→POU type

→function

Category

IEC-block, ConvertEnh

Conform to →IEC-standard

(plus) not defined in IEC-standard

Graphical interface

Available since

  • version 1.27.0 (for Neuron Power Engineer)

  • version 3.1.0 (for library Standard) – For inputs of data type REAL, the optimized float variant of the C-runtime is used. Compared to previous versions, it is possible that (marginal) other results are returned within the threshold range of the block. 

Functionality

The block returns the result of the operation "rounding half away from zero":

The floating-point number connected to input IN  is rounded upwards to the smallest following integer, if the digit after the decimal point is ≥ 0.5. Otherwise the floating-point number is rounded downwards to the largest previous integer.

Compare: "CEIL block", "FLOOR block"

Inputs, return value

 

Identifier

→Data type

Description

Inputs:

IN

REAL, LREAL
(corresponds to →generic data type ANY_REAL)

value to round

Return value:

REAL, LREAL
(corresponds to →generic data type ANY_REAL)

 

Input EN and output ENO are available when →calling the block. See "Execution control: EN, ENO" for information on input EN and output ENO.

See:

Example for usage within ST-editor

PROGRAM Test
   VAR
      result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15 : REAL;
   END_VAR
   result1 := ROUND(2.8);     (* The variable 'result1' evaluates to '3.0'. *)
   result2 := ROUND(2.5);     (* The variable 'result2' evaluates to '3.0'. *)
   result3 := ROUND(2.01);    (* The variable 'result3' evaluates to '2.0'. *)
   result4 := ROUND(2.0);     (* The variable 'result4' evaluates to '2.0'. *)
 
   result5 := ROUND(-2.0);    (* The variable 'result5' evaluates to '-2.0'. *) 
   result6 := ROUND(-2.3);    (* The variable 'result6' evaluates to '-2.0'. *)
   result7 := ROUND(-2.5);    (* The variable 'result7' evaluates to '-3.0'. *)
   result8 := ROUND(-2.99);   (* The variable 'result8' evaluates to '-3.0'. *)
 
   result9 := ROUND(0.000001);     (* The variable 'result9' evaluates to '0.0'. *)
   result10 := ROUND(0.0);          (* The variable 'result10' evaluates to '0.0'. *)
   result11 := ROUND(-0.000001);    (* The variable 'result11' evaluates to '0.0'. *)
 
   result12 := ROUND(3.402823466e+38);     (* The variable 'result12' evaluates to '340.2823466385289E+36'. *)
   result13 := ROUND(1.175494351e-38);     (* The variable 'result13' evaluates to '0.0'. *)
 
   result14 := ROUND(-3.402823466e+38);    (* The variable 'result14' evaluates to '-340.2823466385289E+36'. *)
   result15 := ROUND(-1.175494351e-38);    (* The variable 'result15' evaluates to '0.0'. *)
END_PROGRAM

When creating your application within the ST-editor, enter a call of a block by typing the text as requested by the syntax or use Content Assist.